<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // ***赋值函数和声明式函数区别
        // 声明式函数可以定义之前调用，
        // 赋值式，必须先定义后调用
        // fn()
        // fn2()// fn2 is not a function

        function fn() {
            console.log('fn');
        }

        var fn2 = function () {
            console.log('fn2');
        }

        // fn()
        // fn2()



        // 计算两个数字的和

        // function sum() {
        //     var num1 = 1;
        //     var num2 = 2;
        //     var res = num1 + num2;
        //     console.log(res);
        // }
        // sum();
        // sum();


        // 函数的参数****
        // 函数内部需要的一些数据，可以让外部提供
        // 语法
        /*
        定义函数的时候，小括号内可以写 参数，叫形参（形式参数，没有）
        函数调用的时候 传入实参，调用函数，实参的值会 按照顺序依次赋值给形参、

            参数的个数：
                任意 

                参数1，参数2.... 参数列表
                一般情况，定义了几个形参，就传入几个实参
         function 函数名(参数1，参数2....){
            
         }

         如果实参比形参多--多余的实参 没有形参 接收对应的值（实参就没意义）
         如果实参比形参少-- 相对于 有些形参，有没实参给他赋值，定义了形参，但是没有赋值-此时他们的值为undefined
        
        */


        // num1 num2 形参
        function sum(num1, num2) {

            var res = num1 + num2;
            console.log(res);
        }
        // 1 2 叫实参
        // 调用函数，实参的值会 按照顺序依次赋值给形参、
        /*
        num1=1
        num2 = 2
            */
        sum(1, 2);
        /*
            num1 = 888
            num2 = 876 
            var res = num1+num2;

        */

        // num1=888 num2 就是undefined， 
        sum(888);


        // parseFloat('123px')
        parseInt('123.11')
        console.log('aaa');
        console.log(1, 2, 3);

    </script>

</body>

</html>